
#ifndef UART_COMM_DEF_H
#define UART_COMM_DEF_H
#define MAX_RX_BUF_LEN    64       // 最大接收缓冲区长度
#define FRAME_TIMEOUT_MS  20      // 帧超时时间(10ms为单位)，此处为20ms
#define TICK_INVALID      0xFFFF   // 无效的Tick值(假设sys_tick_10ms为16位)
// 协议解析结果枚举
typedef enum {
    PROTOCOL_RESULT_OK,
    PROTOCOL_RESULT_INCOMPLETE,
    PROTOCOL_RESULT_ERROR,
    PROTOCOL_RESULT_UNKNOWN
} protocol_result_typeDef;

 typedef  protocol_result_typeDef (*parse_enter_func)(uint8_t *rx_data, uint16_t rx_len, uint8_t *tx_data, uint16_t *tx_len) ;
// 串口接收缓冲区结构体
typedef struct {
    uint8_t buffer[MAX_RX_BUF_LEN];
    uint16_t len;
    uint8_t overflow;
    uint16_t last_rx_tick; // 最后一次接收字节的系统Tick(10ms级)
} uart_rx_buffer_typeDef;

// 全局数据结构
typedef struct {
    uart_rx_buffer_typeDef rx_buf;
    uint8_t tx_buffer[MAX_RX_BUF_LEN];
    parse_enter_func parse_func;
} uart_protocol_typeDef;


#endif
